package de.schule.barnimgymnasium.autotransporter;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;

import de.schule.barnimgymnasium.autotransporter.spiele.SpielEventListener;

public class ButtonLine extends Composite {
	Label lbl;
	Button einschalter;
	Button buttons[] = new Button[5];
	Image backgroundImage = null; // TODO
	SpielEventListener sel = null;

	public void setSpielEventListener(SpielEventListener s) {
		sel = s;
	}

	SelectionListener selectionListener = new SelectionListener() {

		@Override
		public void widgetDefaultSelected(SelectionEvent e) {
			widgetSelected(e);
		}

		@Override
		public void widgetSelected(SelectionEvent e) {
			if (sel == null)
				return;
			if (e.getSource() == einschalter) {
				boolean state = einschalter.getSelection();
				sel.einOderAusSchalten(state);
				for (Button b : buttons) {
					b.setEnabled(state);
				}
			} else
				for (int i = 0; i < buttons.length; i++) {
					if (e.getSource() == buttons[i]) {
						sel.knopfGedrueckt(i);
					}
				}
		}
	};

	ButtonLine(Composite parent, int nummer) {
		super(parent, SWT.None);
		lbl = new Label(this, SWT.None);
		lbl.setText("Transporter " + nummer);
		setLayout(new RowLayout(SWT.HORIZONTAL));
		einschalter = new Button(this, SWT.CHECK);
		einschalter.setToolTipText("Einschalten");
		einschalter.addSelectionListener(selectionListener);
		for (int i = 0; i < buttons.length; i++) {
			buttons[i] = new Button(this, SWT.PUSH);
			buttons[i].addSelectionListener(selectionListener);
			buttons[i].setEnabled(false);
		}
		buttons[0].setText("B0");
		buttons[0].setImage(backgroundImage);
		buttons[0].setToolTipText("Motorgeräusch");
		buttons[1].setText("B1");
		buttons[1].setImage(backgroundImage);
		buttons[1].setToolTipText("Lass uns Farben lernen.");
		buttons[2].setText("B2");
		buttons[2].setImage(backgroundImage);
		buttons[2].setToolTipText("Lass uns zählen lernen.");
		buttons[3].setText("B3");
		buttons[3].setImage(backgroundImage);
		buttons[3].setToolTipText("Höre den Autogeräuschen zu.");
		buttons[4].setText("B4");
		buttons[4].setImage(backgroundImage);
		buttons[4].setToolTipText("Lass uns spielen.");
		einschalter.setSelection(false);
	}
}
